//当前程序使用了Node.js中的fs模块，所以需要node 来运行。
// 案例要求：使用js程序按顺序读取resource/目录下的三个文件内容：a.txt、b.txt、c.txt

// 使用三套方案来实现上面要求：
// 1. 使用传统的fs文件的读取操作 (这种方式属于回调地狱用法)
// const fs = require("fs");
// // 使用异步读取a.txt
// fs.readFile(__dirname + "/resource/a.txt", (err, data1) => {
//     // 读取b.txt
//     fs.readFile(__dirname + "/resource/b.txt", (err, data2) => {
//         // 读取c.txt 
//         fs.readFile(__dirname + "/resource/c.txt", (err, data3) => {
//             console.log(data1.toString(), data2.toString(), data3.toString());
//         });
//     });
// });

// 2. 使用fs下面的promises
// const fs = require("fs/promises");
// // 分别读取三个文件，并返回promise对象
// const f1 = fs.readFile(__dirname + "/resource/a.txt");
// const f2=  fs.readFile(__dirname + "/resource/b.txt");
// const f3 = fs.readFile(__dirname + "/resource/c.txt");
// // 使用Promise的all方法进行处理
// const res = Promise.all([f1, f2, f3]);
// // 使用then来处理
// res.then(data => {
//     console.log("数据读取成功！", data.map(v => v.toString()).join(";"));
// }).catch(err =>{
//     console.log("信息读取失败", err.message);
// });


// 3. 结合async和await的使用
const fs = require("fs/promises");
async function main(){
    // 读取文件内容
    const f1 = await fs.readFile(__dirname + "/resource/a.txt");
    const f2 = await fs.readFile(__dirname + "/resource/b.txt");
    const f3 = await fs.readFile(__dirname + "/resource/c.txt");

    console.log(f1.toString(), f2.toString(), f3.toString());
}

main();

